Field
This disclosure relates generally to multi-core systems and more particularly to processing systems with context switching.
Related Art
Multi-core processing systems often perform operations on packet data in which those operations are performed as tasks. Various cores executing a particular program are performing tasks assigned to them by a task manager. The tasks themselves may have time periods in which another resource, such as a hardware accelerator, is performing a portion, or job, of the task so that the core is not actually involved with that task. In such case the core can be used to execute another task while the job is being executed by the accelerator. When the hardware accelerator, for example, is finished with that job, the core will need to eventually continue the task. Thus it is important that the core know the last known state of the task. This type of operation in which context information is used in providing for a core to switch tasks prior to completing the task is generally referenced as context switching. Context switching provides a benefit of more use of the cores in a given amount of time. One cost of this is that there is some delay in transferring between jobs due to loading the context information of a previous task as it becomes the current task for the core. Also there is a continuous desire for increased efficiency in performing tasks more quickly and with fewer resources.
Thus, there is a continuing need for further improvements in multi-core systems in which context switching is used.
Accordingly there is a need to provide further improvement in achieving power savings of flip-flop banks while avoiding sacrificing speed.